<?php

class KeysController extends AppController {

    var $name = 'Keys';
    var $uses = array('Key', 'Copy', 'Car');

    function beforeFilter() {
        parent::beforeFilter();

        //si no es un usuario con nivel = 3 o 1 no lo dejo acceder a las siguientes funciones de este controlador
        if (in_array($this->action, array('index', 'edit', 'delete', 'view', 'agregar_copia')) and $this->Auth->user('id') and !(in_array($this->Auth->user('level'), array(1,3)))) {
            $this->redirect(array('user' => false, 'controller' => 'articles', 'action' => 'inicio'));
        }
        if (in_array($this->action, array('add')) and $this->Auth->user('id')) {
            $this->redirect(array('user' => false, 'controller' => 'articles', 'action' => 'inicio'));
        }
    }

    function index() {
        $this->Key->recursive = 0;
        $this->paginate['order'] = array('Key.mark' => 'ASC');
        $this->set('keys', $this->paginate());
    }

    function view($id = null) {
        if (!$id) {
            $this->Session->setFlash(__('Llave invalida', true));
            $this->redirect(array('action' => 'index'));
        }
        $this->paginate['order'] = array('Copy.date' => 'ASC');
        $this->set('key', $this->Key->read(null, $id));
    }

    function add() {
        if (!empty($this->data)) {
            $this->Key->create();
            if ($this->Key->save($this->data)) {
//				$this->Session->setFlash(__('La llave fue guardada.', true));
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('La llave no fue guardada. Por favor, intente de nuevo.', true));
            }
        }
        $cars = $this->Key->Car->find('list');
        $this->set(compact('cars'));
    }

    function agregar_copia($id = null) {
        if (!empty($this->data)) {
            $this->Copy->create();
            $datos = $this->data['Key'];
//                        pr($datos);
            $datos['date'] = date('Y-m-d H:i:s');
//                        pr($datos);die;
            if ($this->Copy->save($datos)) {
//				$this->Session->setFlash(__('La llave fue guardada.', true));
                $this->redirect(array('controller' => 'keys', 'action' => 'view', $datos['key_id']));
            } else {
                $this->Session->setFlash(__('La llave no fue guardada. Por favor, intente de nuevo.', true));
            }
        }
//		$keys = $this->Copy->Key->find('list');
        $this->set(compact('keys'));
        $this->set('valor_id', $id);
    }

    function edit($id = null) {
        if (!$id && empty($this->data)) {
            $this->Session->setFlash(__('Llave invalida', true));
            $this->redirect(array('action' => 'index'));
        }
        $datos = $this->data['Key'];
        if (!empty($this->data)) {
            if ($this->Key->save($this->data)) {
//				$this->Session->setFlash(__('La llave fue guardada.', true));
                $this->redirect(array('controller' => 'cars', 'action' => 'view', $datos['car_id']));
            } else {
                $this->Session->setFlash(__('La llave no fue guardada. Por favor, intente de nuevo.', true));
            }
        }
        if (empty($this->data)) {
            $this->data = $this->Key->read(null, $id);
        }
        $cars = $this->Key->Car->find('list');
        $this->set(compact('cars'));
    }

    function delete($id = null) {
        if (!$id) {
            $this->Session->setFlash(__('Llave invalida', true));
            $this->redirect(array('action' => 'index'));
        }
        $llave_eliminada = $this->Key->find('first', array('conditions' => array('Key.id' => $id)));
//                pr($llave_eliminada);die;
        $contar_copias = $this->Copy->find('count', array('conditions' => array('Copy.key_id' => $id)));
        if ($contar_copias == 0) {
            if ($this->Key->delete($id)) {
                $this->Session->setFlash(__('Llave eliminada', true));
                $this->redirect(array('controller' => 'cars', 'action' => 'view', $llave_eliminada['Car']['id']));
            }
        }
        $this->Session->setFlash(__('La llave no pudo ser eliminado. Verifique si tiene copias asociadas', true));
        $this->redirect(array('action' => 'view', $id));
    }

}
